Skip to content

Add authorization event and webhook types#551

Merged
csrbarber merged 3 commits intofeature/ent-4799-workos-python-env-rolesfrom
feature/ent-4799-workos-python-events
Feb 17, 2026
Merged

Add authorization event and webhook types#551
csrbarber merged 3 commits intofeature/ent-4799-workos-python-env-rolesfrom
feature/ent-4799-workos-python-events

Conversation

@csrbarber
Copy link
Contributor

Description

Add event and webhook types for organization_role (created, updated, deleted) and permission (created, updated, deleted) to support authorization-related event streaming and webhook delivery.

Documentation

Does this require changes to the WorkOS Docs? E.g. the API Reference or code snippets need updates.

[X] Yes

If yes, link a related docs PR and add a docs maintainer as a reviewer. Their approval is required.

Add event and webhook types for organization_role (created, updated,
deleted) and permission (created, updated, deleted) to support
authorization-related event streaming and webhook delivery.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@csrbarber csrbarber requested a review from a team as a code owner February 13, 2026 15:44
@csrbarber csrbarber requested review from gjtorikian and removed request for a team February 13, 2026 15:44
@linear
Copy link

linear bot commented Feb 13, 2026

ENT-4799 workos-python

@greptile-apps
Copy link
Contributor

greptile-apps bot commented Feb 13, 2026

Greptile Overview

Greptile Summary

Added complete event and webhook type support for authorization-related resources (organization_role and permission). The changes include:

  • Created six new event classes: OrganizationRoleCreatedEvent, OrganizationRoleUpdatedEvent, OrganizationRoleDeletedEvent, PermissionCreatedEvent, PermissionUpdatedEvent, PermissionDeletedEvent
  • Created corresponding webhook classes with identical naming pattern
  • Registered all new types in discriminated unions for proper type discrimination
  • Added OrganizationRole and Permission to EventPayload TypeVar
  • Added corresponding event type literals to EventType

The implementation follows existing patterns consistently, using EventModel[OrganizationRole] and EventModel[Permission] generics, Literal discriminators, and proper alphabetical ordering in unions. All imports reference existing authorization types from workos/types/authorization/.

Confidence Score: 5/5

  • This PR is safe to merge with no risk
  • Changes are purely additive type definitions following established patterns exactly - no logic, no security concerns, no breaking changes, just new event/webhook types for authorization features
  • No files require special attention

Important Files Changed

Filename Overview
workos/types/events/event_type.py Added six new event type literals for organization_role and permission events (created, updated, deleted)
workos/types/events/event_model.py Added OrganizationRole and Permission imports and to EventPayload TypeVar for type safety
workos/types/events/event.py Added six event classes and registered them in Event union for authorization role and permission events
workos/types/webhooks/webhook.py Added six webhook classes and registered them in Webhook union for authorization role and permission webhooks

Sequence Diagram

sequenceDiagram
    participant Client as SDK Client
    participant API as WorkOS API
    participant Webhook as Webhook Handler
    
    Note over Client,API: Authorization Resource Operations
    Client->>API: Create/Update/Delete OrganizationRole
    API-->>Client: OrganizationRole response
    API->>Webhook: organization_role.created/updated/deleted event
    Webhook->>Webhook: Parse OrganizationRoleWebhook type
    
    Client->>API: Create/Update/Delete Permission
    API-->>Client: Permission response
    API->>Webhook: permission.created/updated/deleted event
    Webhook->>Webhook: Parse PermissionWebhook type
    
    Note over Webhook: Both event types use discriminated unions<br/>for type-safe deserialization
Loading

Last reviewed commit: 94a09eb

Copy link
Contributor

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

4 files reviewed, no comments

Edit Code Review Agent Settings | Greptile

@csrbarber csrbarber merged commit bab991a into feature/ent-4799-workos-python-env-roles Feb 17, 2026
8 checks passed
@csrbarber csrbarber deleted the feature/ent-4799-workos-python-events branch February 17, 2026 15:21
csrbarber added a commit that referenced this pull request Feb 17, 2026
* Add authorization environment roles support

Add CRUD operations for environment roles including create, list, get,
update, set/add permissions on the authorization module.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Use Role union type for list/get organization role endpoints

The list and get organization role endpoints can return both
EnvironmentRole and OrganizationRole types. This aligns the
Python SDK return types with the Node SDK.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Add authorization event and webhook types (#551)

* Add authorization event and webhook types

Add event and webhook types for organization_role (created, updated,
deleted) and permission (created, updated, deleted) to support
authorization-related event streaming and webhook delivery.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Distinct type for organization role events

* mypy

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
csrbarber added a commit that referenced this pull request Feb 17, 2026
* Add authorization organization roles support

Add CRUD operations for organization roles including create, list, get,
update, set/add/remove permissions on the authorization module.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* format

* Add authorization environment roles support (#550)

* Add authorization environment roles support

Add CRUD operations for environment roles including create, list, get,
update, set/add permissions on the authorization module.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Use Role union type for list/get organization role endpoints

The list and get organization role endpoints can return both
EnvironmentRole and OrganizationRole types. This aligns the
Python SDK return types with the Node SDK.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Add authorization event and webhook types (#551)

* Add authorization event and webhook types

Add event and webhook types for organization_role (created, updated,
deleted) and permission (created, updated, deleted) to support
authorization-related event streaming and webhook delivery.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Distinct type for organization role events

* mypy

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
csrbarber added a commit that referenced this pull request Feb 17, 2026
* Add authorization organization roles support

Add CRUD operations for organization roles including create, list, get,
update, set/add/remove permissions on the authorization module.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* format

* Add authorization environment roles support (#550)

* Add authorization environment roles support

Add CRUD operations for environment roles including create, list, get,
update, set/add permissions on the authorization module.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Use Role union type for list/get organization role endpoints

The list and get organization role endpoints can return both
EnvironmentRole and OrganizationRole types. This aligns the
Python SDK return types with the Node SDK.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Add authorization event and webhook types (#551)

* Add authorization event and webhook types

Add event and webhook types for organization_role (created, updated,
deleted) and permission (created, updated, deleted) to support
authorization-related event streaming and webhook delivery.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Distinct type for organization role events

* mypy

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
gjtorikian pushed a commit that referenced this pull request Feb 17, 2026
* Add authorization permissions support

Introduce the authorization module with CRUD operations for permissions
including create, list (paginated), get, update (PATCH), and delete.
Register the module on both sync and async clients.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Add authorization organization roles support (#549)

* Add authorization organization roles support

Add CRUD operations for organization roles including create, list, get,
update, set/add/remove permissions on the authorization module.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* format

* Add authorization environment roles support (#550)

* Add authorization environment roles support

Add CRUD operations for environment roles including create, list, get,
update, set/add permissions on the authorization module.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Use Role union type for list/get organization role endpoints

The list and get organization role endpoints can return both
EnvironmentRole and OrganizationRole types. This aligns the
Python SDK return types with the Node SDK.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Add authorization event and webhook types (#551)

* Add authorization event and webhook types

Add event and webhook types for organization_role (created, updated,
deleted) and permission (created, updated, deleted) to support
authorization-related event streaming and webhook delivery.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Distinct type for organization role events

* mypy

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>

* Remove aliasing, format

* Format, types

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

Comments